/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package edu.upn.sigemfi.gar.be;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Programador
 */
@Entity
@Table(name = "GAR_GARANTIA_LIQUIDA")
@NamedQueries({
    @NamedQuery(name = "GarantiaLiquida.findAll", query = "SELECT g FROM GarantiaLiquida g"),
    @NamedQuery(name = "GarantiaLiquida.findByTipoliquida", query = "SELECT g FROM GarantiaLiquida g WHERE g.tipoliquida = :tipoliquida"),
    @NamedQuery(name = "GarantiaLiquida.findByBancoemisor", query = "SELECT g FROM GarantiaLiquida g WHERE g.bancoemisor = :bancoemisor"),
    @NamedQuery(name = "GarantiaLiquida.findByLocal", query = "SELECT g FROM GarantiaLiquida g WHERE g.local = :local"),
    @NamedQuery(name = "GarantiaLiquida.findByFechalevantamiento", query = "SELECT g FROM GarantiaLiquida g WHERE g.fechalevantamiento = :fechalevantamiento"),
    @NamedQuery(name = "GarantiaLiquida.findByNumerocuenta", query = "SELECT g FROM GarantiaLiquida g WHERE g.numerocuenta = :numerocuenta"),
    @NamedQuery(name = "GarantiaLiquida.findByMoneda", query = "SELECT g FROM GarantiaLiquida g WHERE g.moneda = :moneda"),
    @NamedQuery(name = "GarantiaLiquida.findByMonto", query = "SELECT g FROM GarantiaLiquida g WHERE g.monto = :monto"),
    @NamedQuery(name = "GarantiaLiquida.findByMontogarantiaanterior", query = "SELECT g FROM GarantiaLiquida g WHERE g.montogarantiaanterior = :montogarantiaanterior"),
    @NamedQuery(name = "GarantiaLiquida.findByPorcentajeaplicar", query = "SELECT g FROM GarantiaLiquida g WHERE g.porcentajeaplicar = :porcentajeaplicar"),
    @NamedQuery(name = "GarantiaLiquida.findByTipomoneda", query = "SELECT g FROM GarantiaLiquida g WHERE g.tipomoneda = :tipomoneda"),
    @NamedQuery(name = "GarantiaLiquida.findByImporte", query = "SELECT g FROM GarantiaLiquida g WHERE g.importe = :importe"),
    @NamedQuery(name = "GarantiaLiquida.findByFechavencimiento", query = "SELECT g FROM GarantiaLiquida g WHERE g.fechavencimiento = :fechavencimiento"),
    @NamedQuery(name = "GarantiaLiquida.findByMontogarantizartotal", query = "SELECT g FROM GarantiaLiquida g WHERE g.montogarantizartotal = :montogarantizartotal"),
    @NamedQuery(name = "GarantiaLiquida.findByMontomaximodisponer", query = "SELECT g FROM GarantiaLiquida g WHERE g.montomaximodisponer = :montomaximodisponer"),
    @NamedQuery(name = "GarantiaLiquida.findByFechaconstituida", query = "SELECT g FROM GarantiaLiquida g WHERE g.fechaconstituida = :fechaconstituida"),
    @NamedQuery(name = "GarantiaLiquida.findBySaldodisponible", query = "SELECT g FROM GarantiaLiquida g WHERE g.saldodisponible = :saldodisponible"),
    @NamedQuery(name = "GarantiaLiquida.findByEquivalentesoles", query = "SELECT g FROM GarantiaLiquida g WHERE g.equivalentesoles = :equivalentesoles")
})
@PrimaryKeyJoinColumn(name = "ID_LIQUIDA", referencedColumnName = "ID_GARANTIA")
@DiscriminatorValue(value = "LIQ")
public class GarantiaLiquida extends Garantia implements Serializable {
    
    @Basic(optional = false)
    @Column(name = "TIPOLIQUIDA", nullable = false, length = 50)
    private String tipoliquida;
    @Basic(optional = false)
    @Column(name = "BANCOEMISOR", nullable = false, length = 100)
    private String bancoemisor;
    @Basic(optional = false)
    @Column(name = "LOCAL", nullable = false, length = 100)
    private String local;
    @Basic(optional = false)
    @Column(name = "FECHALEVANTAMIENTO", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechalevantamiento;
    @Basic(optional = false)
    @Column(name = "NUMEROCUENTA", nullable = false, length = 16)
    private String numerocuenta;
    @Basic(optional = false)
    @Column(name = "MONEDA", nullable = false, length = 50)
    private String moneda;
    @Basic(optional = false)
    @Column(name = "MONTO", nullable = false, precision = 10, scale = 2)
    private BigDecimal monto;
    @Basic(optional = false)
    @Column(name = "MONTOGARANTIAANTERIOR", nullable = false, precision = 10, scale = 2)
    private BigDecimal montogarantiaanterior;
    @Basic(optional = false)
    @Column(name = "PORCENTAJEAPLICAR", nullable = false, precision = 10, scale = 2)
    private BigDecimal porcentajeaplicar;
    @Basic(optional = false)
    @Column(name = "TIPOMONEDA", nullable = false, length = 50)
    private String tipomoneda;
    @Basic(optional = false)
    @Column(name = "IMPORTE", nullable = false, precision = 10, scale = 2)
    private BigDecimal importe;
    @Basic(optional = false)
    @Column(name = "FECHAVENCIMIENTO", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechavencimiento;
    @Basic(optional = false)
    @Column(name = "MONTOGARANTIZARTOTAL", nullable = false, precision = 10, scale = 2)
    private BigDecimal montogarantizartotal;
    @Basic(optional = false)
    @Column(name = "MONTOMAXIMODISPONER", nullable = false, precision = 10, scale = 2)
    private BigDecimal montomaximodisponer;
    @Basic(optional = false)
    @Column(name = "FECHACONSTITUIDA", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaconstituida;
    @Column(name = "SALDODISPONIBLE", precision = 10, scale = 2)
    private BigDecimal saldodisponible;
    @Column(name = "EQUIVALENTESOLES", precision = 10, scale = 2)
    private BigDecimal equivalentesoles;

    public GarantiaLiquida() {
        this.setTipogarantia("Liquida");
    }

    public GarantiaLiquida(String tipoliquida, String bancoemisor, String local, Date fechalevantamiento, String numerocuenta, String moneda, BigDecimal monto, BigDecimal montogarantiaanterior, BigDecimal porcentajeaplicar, String tipomoneda, BigDecimal importe, Date fechavencimiento, BigDecimal montogarantizartotal, BigDecimal montomaximodisponer, Date fechaconstituida) {
        this.tipoliquida = tipoliquida;
        this.bancoemisor = bancoemisor;
        this.local = local;
        this.fechalevantamiento = fechalevantamiento;
        this.numerocuenta = numerocuenta;
        this.moneda = moneda;
        this.monto = monto;
        this.montogarantiaanterior = montogarantiaanterior;
        this.porcentajeaplicar = porcentajeaplicar;
        this.tipomoneda = tipomoneda;
        this.importe = importe;
        this.fechavencimiento = fechavencimiento;
        this.montogarantizartotal = montogarantizartotal;
        this.montomaximodisponer = montomaximodisponer;
        this.fechaconstituida = fechaconstituida;
    }

    public String getTipoliquida() {
        return tipoliquida;
    }

    public void setTipoliquida(String tipoliquida) {
        this.tipoliquida = tipoliquida;
    }

    public String getBancoemisor() {
        return bancoemisor;
    }

    public void setBancoemisor(String bancoemisor) {
        this.bancoemisor = bancoemisor;
    }

    public String getLocal() {
        return local;
    }

    public void setLocal(String local) {
        this.local = local;
    }

    public Date getFechalevantamiento() {
        return fechalevantamiento;
    }

    public void setFechalevantamiento(Date fechalevantamiento) {
        this.fechalevantamiento = fechalevantamiento;
    }

    public String getNumerocuenta() {
        return numerocuenta;
    }

    public void setNumerocuenta(String numerocuenta) {
        this.numerocuenta = numerocuenta;
    }

    public String getMoneda() {
        return moneda;
    }

    public void setMoneda(String moneda) {
        this.moneda = moneda;
    }

    public BigDecimal getMonto() {
        return monto;
    }

    public void setMonto(BigDecimal monto) {
        this.monto = monto;
    }

    public BigDecimal getMontogarantiaanterior() {
        return montogarantiaanterior;
    }

    public void setMontogarantiaanterior(BigDecimal montogarantiaanterior) {
        this.montogarantiaanterior = montogarantiaanterior;
    }

    public BigDecimal getPorcentajeaplicar() {
        return porcentajeaplicar;
    }

    public void setPorcentajeaplicar(BigDecimal porcentajeaplicar) {
        this.porcentajeaplicar = porcentajeaplicar;
    }

    public String getTipomoneda() {
        return tipomoneda;
    }

    public void setTipomoneda(String tipomoneda) {
        this.tipomoneda = tipomoneda;
    }

    public BigDecimal getImporte() {
        return importe;
    }

    public void setImporte(BigDecimal importe) {
        this.importe = importe;
    }

    public Date getFechavencimiento() {
        return fechavencimiento;
    }

    public void setFechavencimiento(Date fechavencimiento) {
        this.fechavencimiento = fechavencimiento;
    }

    public BigDecimal getMontogarantizartotal() {
        return montogarantizartotal;
    }

    public void setMontogarantizartotal(BigDecimal montogarantizartotal) {
        this.montogarantizartotal = montogarantizartotal;
    }

    public BigDecimal getMontomaximodisponer() {
        return montomaximodisponer;
    }

    public void setMontomaximodisponer(BigDecimal montomaximodisponer) {
        this.montomaximodisponer = montomaximodisponer;
    }

    public Date getFechaconstituida() {
        return fechaconstituida;
    }

    public void setFechaconstituida(Date fechaconstituida) {
        this.fechaconstituida = fechaconstituida;
    }

    public BigDecimal getSaldodisponible() {
        return saldodisponible;
    }

    public void setSaldodisponible(BigDecimal saldodisponible) {
        this.saldodisponible = saldodisponible;
    }

    public BigDecimal getEquivalentesoles() {
        return equivalentesoles;
    }

    public void setEquivalentesoles(BigDecimal equivalentesoles) {
        this.equivalentesoles = equivalentesoles;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idGarantia != null ? idGarantia.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Garantia)) {
            return false;
        }
        Garantia other = (Garantia) object;
        if ((this.idGarantia == null && other.idGarantia != null) || (this.idGarantia != null && !this.idGarantia.equals(other.idGarantia))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "edu.upn.sigemfi.gar.be.Garantia[idGarantia=" + idGarantia + "]";
    }

}
